package com.demo.security.access;

import java.util.Collection;

import org.springframework.aop.framework.AopInfrastructureBean;

/**
 * 逻辑元数据资源类
 * 
 * @author ryuu.kk
 */
public interface LogicMetadataSource extends AopInfrastructureBean {

	/**
	 * 取得逻辑配置属性
	 * @param object 目标类
	 * @return 配置属性
	 * @throws IllegalArgumentException 错误参数访问
	 */
    Collection<LogicAttribute> getAttributes(Object object) throws IllegalArgumentException;
    /**
     * 取得所有支持的逻辑配置属性
     * @return 所有逻辑配置属性
     */
    Collection<LogicAttribute> getAllAttributes();
    /**
     * 对目标类是否支持
     * @param clazz 目标类
     * @return 支持标志
     */
    boolean supports(Class<?> clazz);
}
